A database is an organized collection of data, typically in digital form. A database may be managed and maintained by at least one instance of database management software that allows different users to concurrently access the same database. When a user starts to access the database, a database session associated with the user is created.
However, many database resources, though sharable, may not be accessed in certain ways by more than one database session at any given time. For example, database resources, such as a data table stored in data storage, may be concurrently accessed in some ways (e.g., read) by multiple database sessions, but accessed in other ways (e.g., written to) by only one database session at a time. Thus, a group of database sessions may have to wait for one or more database resources, if the database resources are being held by another group of database sessions, which causes a hang in the database system.
It is within this context that embodiments arise.